const axios = require('axios');

async function testConfigAPI() {
  const baseURL = 'http://localhost:3002/api';
  
  try {
    console.log('🧪 测试配置API...\n');

    // 1. 测试健康检查
    console.log('1. 测试健康检查:');
    const healthResponse = await axios.get(`${baseURL}/health`);
    console.log('   状态:', healthResponse.data.status);

    // 2. 测试配置状态
    console.log('\n2. 测试配置状态:');
    const statusResponse = await axios.get(`${baseURL}/config/status/health`);
    console.log('   配置状态:', statusResponse.data.data);

    // 3. 测试用户登录获取token
    console.log('\n3. 测试用户登录:');
    try {
      const loginResponse = await axios.post(`${baseURL}/auth/login`, {
        email: 'test@example.com',
        password: 'password123'
      });
      console.log('   登录成功，获取到token');
      const token = loginResponse.data.token;
      
      // 4. 测试获取配置（需要认证）
      console.log('\n4. 测试获取配置:');
      const configResponse = await axios.get(`${baseURL}/config/DB_HOST`, {
        headers: { Authorization: `Bearer ${token}` }
      });
      console.log('   数据库主机:', configResponse.data.data.value);
      
    } catch (loginError) {
      console.log('   登录失败，使用测试token');
      const token = 'test-token-for-websocket';
      
      // 使用测试token
      try {
        const configResponse = await axios.get(`${baseURL}/config/DB_HOST`, {
          headers: { Authorization: `Bearer ${token}` }
        });
        console.log('   数据库主机:', configResponse.data.data.value);
      } catch (configError) {
        console.log('   配置获取失败:', configError.response?.data?.message || configError.message);
      }
    }

    console.log('\n✅ 配置API测试完成！');

  } catch (error) {
    console.error('❌ 测试失败:', error.response?.data || error.message);
  }
}

// 如果直接运行此脚本
if (require.main === module) {
  testConfigAPI()
    .then(() => {
      console.log('\n🎉 测试完成');
      process.exit(0);
    })
    .catch((error) => {
      console.error('测试失败:', error);
      process.exit(1);
    });
}

module.exports = { testConfigAPI };
